home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
001
/
answer2.arc
/
ANSWER.BAS
next >
Wrap
BASIC Source File
|
1985-08-14
|
17KB
|
398 lines
0100 ' The lines numbered 0100 thru 0166 MUST NOT BE ALTERED OR REMOVED!
0102 ' Enjoy this most useful little software offering! This program is
0104 ' copyrighted, but it may be distributed in any media, provided that:
0106 '
0108 ' 1. You do not alter or remove the REM statements out of the
0110 ' source code or alter the documentation in any way.
0112 ' That you include BOTH answer2.bas + answer2.doc in whatever
0114 ' media is chosen for distribution.
0116 '
0118 ' 2. You do not DISTRIBUTE a modified version of this code. If you MUST
0120 ' modify the software,... use the accepted practice of creating a
0122 ' MERGE file to contain your changes. In this way... any bugs which
0124 ' are fixed or new feature which are to be included can be done in a
0126 ' reasonably maintainable fashion.
0128 '
0130 ' 3. Charge no fees for the distribution of this software beyond the
0132 ' minimal charge ($4 maximum) for a distribution diskette.
0134 ' If other programs are included on the diskette, do not charge
0136 ' more than once for the distribution diskette.
0138 '
0140 '
0142 ' If you would like to receive free updates of the program,
0144 ' send a donation ($20 is suggested for private use, $20 minimum for
0146 ' commercial or corporate usage is mandatory) to:
0148 '
0150 ' Mike Sirmans
0152 ' 4022 Tanglewood Rd.
0154 ' Snellville, GA 30278
0156 ' Call: ZAP!-BBS (404) 972-3458
0158 ' Supporting ASCII & XMODEM downloads
0160 ' at 2400/1200/300 baud 24-hrs/day
0162 '
0164 ' (C) Copyright 1985 by Mike Sirmans, ALL RIGHTS RESERVED.
0166 '
1000 CLEAR:CLS:DEFINT A-Z:DEF SEG
1020 SYS$="MIKE":NM$="ZAP!-BBS":CP$="COM1":BA$="300":PW$="PASSWRD"
1021 REM
1022 REM CHANGE THE DATA IN THE LINE ABOVE TO SUIT YOUR TASTES ...
1023 REM
1024 REM SYS$ = System operator's FIRST name.
1025 REM NM$ = Name of this system. (printed as: WELCOME TO ....... )
1026 REM CP$ = Communications port. Must be COM1 or COM2
1027 REM BA$ = Open the communication port at this baud rate.
1028 REM PW$ = Your REMOTE password list your messages (must be UPPER-case)
1029 REM
1030 SD$="ATM0Q1S2=255S10=30S0=0"
1040 CLS:KEY OFF:PR=1:LCL=0:UPD=1:UC=0:LOCATE ,,0
1060 ON ERROR GOTO 6080
1080 LOCATE 5,24:PRINT "▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄"
1100 LOCATE 6,24:PRINT "▌ ▐"
1120 LOCATE 7,24:PRINT "▌ ░▒▓▓▓ the ELECTRONIC ▓▓▓▒░ ▐"
1140 LOCATE 8,24:PRINT "▌ ░▒▓▓▓ ANSWERING MACHINE ▓▓▓▒░ ▐"
1160 LOCATE 9,24:PRINT "▌ ▐"
1180 LOCATE 10,24:PRINT "▌ Original concept by: Sean Nolan ▐"
1200 LOCATE 11,24:PRINT "▌ ▐"
1220 LOCATE 12,24:PRINT "▌ Re-written by Mike Sirmans ▐"
1240 LOCATE 13,24:PRINT "▌ Sysop: ZAP!-BBS Atlanta, GA ▐"
1260 LOCATE 14,24:PRINT "▌ (404) 972-3458 24-hrs/day ▐"
1280 LOCATE 15,24:PRINT "▌ ▐"
1300 LOCATE 16,24:PRINT "▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀"
1310 LOCATE 22,13:PRINT "(C) Copyright 1985 by Mike Sirmans, ALL RIGHTS RESERVED."
1320 DEF FNTI!=CSNG(FIX((VAL(MID$(TIME$,1,2))*60*60)+(VAL(MID$(TIME$,4,2))*60)+(VAL(MID$(TIME$,7,2))*1))):DEF FNBL$="BLK"+RIGHT$("0000"+RIGHT$(STR$(BLK),LEN(STR$(BLK))-1),5)
1340 DEF FNS$(A1$,A)=A1$+SPACE$(A-LEN(A1$))
1360 BK$=CHR$(8)+CHR$(32)+CHR$(8):BK1$=CHR$(29)+CHR$(32)+CHR$(29)
1380 IF CP$="COM2" THEN LSB=&H2F8:MSB=&H2F9:LCR=&H2FB:MCR=&H2FC:LSR=&H2FD:MSR=&H2FE ELSE LSB=&H3F8:MSB=&H3F9:LCR=&H3FB:MCR=&H3FC:LSR=&H3FD:MSR=&H3FE
1400 OPEN "I",2,"ANSWER.DEF":INPUT #2,BP$,CH$,NUM,MUN:CLOSE #2
1420 KEY 1,"":KEY (1) ON:ON KEY(1) GOSUB 6200
1440 KEY 2,"":KEY (2) ON:ON KEY(2) GOSUB 6300
1460 KEY 3,"":KEY (3) ON:ON KEY(3) GOSUB 6260
1480 KEY 4,"":KEY (4) ON:ON KEY(4) GOSUB 6280
1500 DIM LI$(100):M$=CHR$(10)+CHR$(13)
1540 REM
1560 REM ------------------- BEGINNING OF PROGRAM LOGIC --------------------
1580 REM
1600 IF INP(MSR)<128 THEN OUT MCR,&H4:GOSUB 6460:OUT MCR,&H0
1620 CLOSE:OPEN CP$+":"+BA$+",N,8,1,RS,CD,DS" AS #3
1640 PR=0:A$="ATZ":GOSUB 6500:GOSUB 6460:A$=SD$:GOSUB 6500:PR=1
1660 CLS
1680 LOCATE 17,24:PRINT "░▒▓▓▓ the ELECTRONIC ▓▓▓▒░"
1700 LOCATE 18,24:PRINT "░▒▓▓▓ ANSWERING MACHINE ▓▓▓▒░"
1720 LOCATE 22,13:PRINT "(C) Copyright 1985 by Mike Sirmans, ALL RIGHTS RESERVED."
1740 LOCATE 3,24
1760 PRINT "STANDBY...";
1780 UPD=0:GOSUB 6660:UPD=1
1788 LOCATE 3,24
1790 PRINT "Ready at ";TIME$;" on ";DATE$;
1800 WE$=INKEY$
1820 IF WE$="X" OR WE$="x" THEN LOCATE 22,13:PRINT " PROGRAM TERMINATED... ":SYSTEM:END
1840 IF WE$="L" OR WE$="l" THEN 2000
1850 IF WE$="R" OR WE$="r" THEN GOSUB 6350
1860 IF(INP(MSR)AND &H40)=0 THEN GOTO 1800
1880 REM -----------------------------------------------------------------
1900 PR=0:A$="ATQ0X1V1A":GOSUB 6500:TCC!=FNTI!+30:DF$="":PR=1
1920 IF INP(MSR)<128 AND FNTI!<TCC! THEN 1920 ELSE IF INP(MSR)<128 THEN 2740 ELSE GOSUB 6460
1940 IF LOC(3)<>0 THEN DF$=DF$+INPUT$(LOC(3),3) ELSE 1965
1960 IF INSTR(DF$,"CONNECT") THEN QQ=VAL(MID$(DF$,INSTR(DF$,"CONNECT")+8,4)):GOTO 2020
1965 IF FNTI!=>TCC! THEN 2740 ELSE 1920
1980 REM -----------------------------------------------------------------
2000 PR=0:A$="ATQ1E1H1M0":GOSUB 6500:CLOSE #3:PR=1:LCL=1:GOTO 2040
2020 GOSUB 21280:IF QQ=0 OR QQ=300 THEN Q=&H180:BPS=-1:GOSUB 11654 ELSE IF QQ=1200 OR QQ=2400 THEN BPS=-2-(QQ/1200):Q=48*(BPS+5):GOSUB 11654 ELSE 1940
2040 CLS:CNCT=1
2060 A$="WELCOME TO "+NM$+CHR$(10)+CHR$(13):GOSUB 6500
2070 M$=CHR$(13)
2080 IF LCL=1 THEN 2220
2090 MUN=MUN+1:GOSUB 6970
2100 GOSUB 6340:GOSUB 6460
2120 PRINT "Do you need linefeeds (Y/N) ? ";
2140 PRINT #3,"Do you need linefeeds (Y/N) ? ";
2160 GOSUB 5720
2180 IF LEFT$(B$,1)="n" OR LEFT$(B$,1)="N" THEN 2201
2200 M$=CHR$(10)+CHR$(13)
2201 PRINT M$+"Enter your REAL First Name: ";
2202 PRINT #3,M$+"Enter your REAL First Name: ";
2203 UC=1:GOSUB 5720:UC=0:FR1$=B$
2204 PRINT "Enter your REAL Last Name: ";
2205 PRINT #3,"Enter your REAL Last Name: ";
2206 UC=1:GOSUB 5720:UC=0:FR2$=B$
2207 PRINT M$+"Your name is - ";FR1$;" ";FR2$;" ...right ? ";
2208 PRINT #3,M$+"Your name is - ";FR1$;" ";FR2$;" ...right ? ";
2209 GOSUB 5720
2210 IF LEFT$(B$,1)="y" OR LEFT$(B$,1)="Y" THEN 2212
2211 A$=M$+M$:GOSUB 6500:GOTO 2201
2212 OPEN "MESSAGES" FOR APPEND AS #2
2213 PRINT #2, STRING$(50,"-");CHR$(13);CHR$(10);
2214 PRINT #2, DATE$;" ";TIME$;" Caller #";MUN;" ... "FR1$;" ";FR2$;CHR$(13);CHR$(10);
2215 CLOSE #2
2220 A$=M$:GOSUB 6500
2240 OPEN "OUTMSG" FOR INPUT AS #2
2260 WHILE NOT EOF(2)
2280 A$=INPUT$(1,#2)
2300 IF A$=CHR$(8) THEN GOSUB 3340:GOTO 2380
2320 IF A$=CHR$(10) THEN 2380
2340 IF A$=CHR$(13) THEN PRINT:IF LCL=0 THEN PRINT #3,M$;:GOTO 2380 ELSE GOTO 2380
2360 PRINT A$;:IF LCL=0 THEN PRINT #3,A$;
2380 WEND
2400 CLOSE #2
2420 A$=M$:GOSUB 6500
2440 A$="Main functions":GOSUB 6500
2460 PRINT "E)nter msg O)perator page G)oodbye ?)Help : ";
2480 IF LCL=0 THEN PRINT #3,"E)nter msg O)perator page G)oodbye ?)Help : ";
2500 GOSUB 5720
2520 C$=LEFT$(B$,1)
2540 IF C$="E" OR C$="e" THEN 3580
2560 IF C$="O" OR C$="o" THEN 2820
2580 IF C$="G" OR C$="g" THEN 2680
2600 IF C$="~" THEN 4920
2620 IF C$="?" THEN 3460
2640 A$="Invalid command!":GOSUB 6500
2660 GOTO 2420
2680 CLOSE #2
2685 A$=M$:GOSUB 6500
2690 OPEN "BYEMSG" FOR INPUT AS #2
2695 WHILE NOT EOF(2)
2700 A$=INPUT$(1,#2)
2705 IF A$=CHR$(8) THEN GOSUB 3340:GOTO 2725
2710 IF A$=CHR$(10) THEN 2725
2715 IF A$=CHR$(13) THEN PRINT:IF LCL=0 THEN PRINT #3,M$;:GOTO 2725 ELSE GOTO 2725
2720 PRINT A$;:IF LCL=0 THEN PRINT #3,A$;
2725 WEND
2730 CLOSE #2:FOR I=1 TO 2:GOSUB 6460:NEXT I
2740 CLOSE #3:GOTO 1000
2750 '
2820 IF CH$="ON " THEN 2880
2840 A$=M$+"Sorry, "+SYS$+" isn't around right now. Try again later...":GOSUB 6500
2860 GOTO 2420
2880 A$=M$+"Please, stand by.":GOSUB 6500
2900 PRINT "Paging SYSOP ";:IF LCL=0 THEN PRINT #3,"Paging SYSOP ";
2920 A$="."
2940 FOR E=1 TO 30
2960 PRINT A$;:IF LCL=0 THEN PRINT #3,A$;
2980 IF BP$="ON " THEN BEEP
3000 GOSUB 6460
3020 NEXT E
3040 A$=M$+"Sorry, "+SYS$+" just doesn't seem to be around at the moment...":GOSUB 6500
3060 A$="Until then, just leave a message if you will..."+M$:GOSUB 6500
3080 GOTO 2420
3100 IF LCL=1 THEN PRINT M$+"CHAT is not supported in LOCAL-mode !":GOSUB 6460:GOTO 2420
3110 A$=M$+"*** ATTENTION *** Sysop is ONLINE !"+M$:GOSUB 6500
3120 LOCATE ,,1
3121 REM
3122 REM ------------- CHAT SUPPORT ROUTINE ---------------
3123 REM
3130 WHILE EOF(3)
3131 IF POS(0)>79 THEN PRINT:PRINT #3,M$;:GOTO 3130
3132 A$=INKEY$:IF LEN(A$)>1 THEN GOSUB 6340:GOTO 3130
3138 IF A$=CHR$(8) OR A$=CHR$(7) OR A$=CHR$(26) OR A$=CHR$(227) OR A$=CHR$(127) THEN 3200 ELSE IF A$=CHR$(27) THEN 3400
3140 IF A$=CHR$(13) AND LCL=0 THEN PRINT:PRINT#3,M$;:GOTO 3130
3150 IF A$<>"" THEN 3190
3160 WEND
3180 A$=INPUT$(1,3):IF A$=CHR$(8) OR A$=CHR$(7) OR A$=CHR$(26) OR A$=CHR$(227) THEN 3200
3185 IF A$=CHR$(13) THEN PRINT:PRINT #3,M$;:GOTO 3130
3190 PRINT A$;:PRINT #3,A$;:GOTO 3130
3200 GOSUB 3340:GOTO 3130
3290 REM
3291 REM ------------- END OF CHAT ROUTINE ----------------
3292 REM
3340 IF POS(0)>1 THEN PRINT BK1$;:IF LCL=0 THEN PRINT#3,BK$;
3360 RETURN
3400 A$=M$+M$+"CHAT terminated...":GOSUB 6500
3420 LOCATE ,,0
3440 GOTO 2420
3460 A$=M$+"Help !!!"+M$:GOSUB 6500
3480 A$="E)nter ........... You can enter a message to operator":GOSUB 6500
3500 A$="O)perator page ... See if "+SYS$+"'s available to CHAT":GOSUB 6500
3520 A$="G)oodbye ......... Logoff system":GOSUB 6500
3540 A$="?)Help ........... This help file":GOSUB 6500
3560 GOTO 2420
3580 A$=M$+"Enter a message to Sysop"+M$:GOSUB 6500
3600 FOR I=1 TO 60
3620 LI$(I)="" 'clear out dim-array
3640 NEXT
3760 A$=M$+"Enter YOUR message here... you are limited to a maximum of 60 lines.":GOSUB 6500
3780 A$="IMPORTANT! Enter a NULL (blank) line to END-message entry."+M$:GOSUB 6500
3800 L=1:UC=0
3820 IF L=60 THEN LI$(L)="***END***":GOTO 3940
3840 PRINT ">";:IF LCL=0 THEN PRINT #3,">";
3860 GOSUB 5720
3880 IF B$="" THEN LI$(L)="***END***":GOTO 3940
3900 LI$(L)=B$
3920 L=L+1:GOTO 3820
3940 A$=M$+"Editing Subfunction":GOSUB 6500
3960 PRINT "E)dit, L)ist, C)ontinue, N)ew, A)bort, S)ave, ?)Help : ";
3980 IF LCL=0 THEN PRINT #3, "E)dit, L)ist, C)ontinue, N)ew, A)bort, S)ave, ?)Help : ";
4000 GOSUB 5720
4020 C$=LEFT$(B$,1)
4060 IF C$="E" OR C$="e" THEN 4720
4080 IF C$="L" OR C$="l" THEN 4580
4100 IF C$="C" OR C$="c" THEN 3820
4120 IF C$="N" OR C$="n" THEN 3580
4140 IF C$="A" OR C$="a" THEN 2420
4160 IF C$="S" OR C$="s" THEN 4380
4170 IF C$="?" THEN 4200
4180 A$="Invalid command!":GOSUB 6500
4190 GOTO 3940
4200 A$=M$+"Help (again) !!!"+M$:GOSUB 6500
4220 A$="E)dit ....... Allows you to make changes & fix message":GOSUB 6500
4240 A$="L)ist ....... Print message back to you so you can REVIEW it":GOSUB 6500
4260 A$="C)ontinue ... Allows you to continue to add lines to message":GOSUB 6500
4280 A$="N)ew ........ Start over":GOSUB 6500
4300 A$="A)bort ...... Zap message & quit":GOSUB 6500
4320 A$="S)ave ....... write message to file for SYSOP":GOSUB 6500
4340 A$="?)Help ...... This file"+M$:GOSUB 6500
4360 GOTO 3940
4380 L=1
4400 OPEN "MESSAGES" FOR APPEND AS #2
4420 PRINT #2, CHR$(13);CHR$(10);
4440 IF LI$(L)="***END***" THEN 4500
4460 PRINT #2, LI$(L);CHR$(13);CHR$(10);
4480 L=L+1:GOTO 4440
4500 CLOSE #2
4520 A$=M$+"Message saved":GOSUB 6500
4540 NUM=NUM+1:GOSUB 6970
4560 GOTO 2420
4580 L=1
4600 IF LI$(L)="***END***" THEN 4680
4620 FM$=STR$(L)
4640 A$=FM$+":"+LI$(L):GOSUB 6500
4660 L=L+1:GOTO 4600
4680 A$=M$:GOSUB 6500
4700 GOTO 3940
4720 PRINT M$+"Enter line number to EDIT or... Q to quit : ";
4740 IF LCL=0 THEN PRINT #3,M$+"Enter line number to EDIT or... Q to quit : ";
4760 GOSUB 5720
4780 IF LEFT$(B$,1)="Q" OR LEFT$(B$,1)="q" THEN 3940
4800 PL=VAL(B$)
4820 A$=">"+LI$(PL):GOSUB 6500
4840 PRINT ">";:IF LCL=0 THEN PRINT #3,">";
4860 GOSUB 5720
4880 LI$(PL)=B$
4900 GOTO 4720
4920 A$=M$+"---------------------":GOSUB 6500
4940 A$= " LIST MESSAGE FILE ":GOSUB 6500
4960 A$= "---------------------"+M$:GOSUB 6500
4980 PRINT"Enter YOUR access code: ";:IF LCL=0 THEN PRINT #3,"Enter YOUR access code: ";
5000 UC=-1:GOSUB 5720:UC=0
5020 IF B$=PW$ THEN 5060
5040 A$="AUTHORIZATION FAILURE"+M$:GOSUB 6500:GOTO 2420
5060 OPEN "MESSAGES" FOR INPUT AS #2:GOTO 5200
5080 A$=M$+"Sorry, no MESSAGES at this time.":GOSUB 6500:GOTO 2420
5200 A$=M$+"Press <SPACE> to stop/start, <ESC> to quit"+M$:GOSUB 6500:PA=1
5210 TCC!=FNTI!+180
5220 WHILE NOT EOF(2)
5240 IF LCL=1 THEN 5300
5250 IF EOF(3) THEN 5300
5260 UU$=LEFT$(INPUT$(LOC(3),#3),1)
5280 IF UU$=" " THEN GOSUB 5699:GOTO 5240
5290 IF UU$=CHR$(27) THEN 5660
5300 YY$=INKEY$
5320 IF YY$=" " THEN GOSUB 5699:GOTO 5240
5340 IF YY$=CHR$(27) THEN 5660
5400 IF PA=0 THEN 5440
5420 IF FNTI!<TCC! THEN 5240 ELSE 1000
5440 A$=INPUT$(1,#2)
5460 IF A$=CHR$(8) THEN GOSUB 3340:GOTO 5640
5480 IF A$=CHR$(10) THEN 5640
5500 IF A$=CHR$(13) THEN PRINT:IF LCL=0 THEN PRINT #3,M$;:GOTO 5640 ELSE GOTO 5640
5520 PRINT A$;:IF LCL=0 THEN PRINT #3,A$;
5640 WEND
5660 CLOSE #2
5680 A$=M$+"<END-of-File>"+M$:GOSUB 6500:GOTO 2420
5699 TCC!=FNTI!+180:IF PA=0 THEN PA=1:RETURN ELSE PA=0:RETURN
5700 REM
5710 REM ---------- FETCH RESPONSE (TIMES OUT IN 3-MINUTES) ----------
5712 REM
5720 B$="":TCC!=FNTI!+180:LOCATE ,,1
5725 IF LCL=1 THEN 5740
5730 IF EOF(3) THEN 5740
5735 A$=INPUT$(LOC(3),3):GOSUB 6440:GOTO 5730
5740 A$=""
5760 IF LCL=1 THEN 5800
5762 IF(INP(MSR)AND &H80)=0 THEN 1000
5770 IF EOF(3) THEN 5800
5780 IF LOC(3)<>0 THEN A$=INPUT$(1,#3)
5800 Y$=INKEY$:IF Y$<>"" THEN A$=Y$
5810 IF A$="" THEN 5980
5812 TCC!=FNTI!+180
5820 IF A$=CHR$(8) AND LEN(B$)=0 THEN 5980
5840 IF A$=CHR$(8) THEN B$=LEFT$(B$,LEN(B$)-1):GOSUB 3340:GOTO 5980
5860 IF A$=CHR$(10) THEN 5980
5880 IF A$=CHR$(13) THEN 6020
5900 IF UC<>0 THEN IF (ASC(A$)>96) AND (ASC(A$)<123) THEN A$=CHR$(ASC(A$)-32)
5920 IF LEN(B$)>77 AND LCL=0 THEN PRINT #3,CHR$(7);:GOTO 5980
5940 B$=B$+A$
5960 IF UC=-1 THEN A$="."
5970 PRINT A$;:IF LCL=0 THEN PRINT #3,A$;
5980 IF FNTI!<TCC! THEN 5740
6000 GOTO 1000
6020 IF LCL=0 THEN PRINT #3,M$;
6040 PRINT M$;
6060 LOCATE ,,0:RETURN
6080 IF ERR=53 AND ERL=1400 THEN OPEN "O",2,"ANSWER.DEF":WRITE #2,"ON ","ON ",0,0:CLOSE #2:RESUME 1400
6082 IF ERR=53 AND ERL=6980 THEN OPEN "O",2,"ANSWER.DEF":WRITE #2,"ON ","ON ",0,0:CLOSE #2:RESUME 7000
6084 IF ERR=55 AND ERL=6980 THEN RESUME 6990
6086 IF ERR=52 AND ERL=6990 THEN RESUME 6980
6088 IF ERR=57 AND ERL=1940 THEN RESUME 1965
6090 IF ERR=53 AND ERL=2240 THEN RESUME 2420
6091 IF ERR=53 AND ERL=5060 THEN RESUME 5080
6092 IF ERR=53 AND ERL=2690 THEN RESUME 2740
6100 GOSUB 6340:LOCATE 21,1:PRINT "*** ERROR: ";ERR;" OCCURRED ON LINE: ";ERL;" ***";:GOSUB 6460
6120 IF ERR=69 THEN RESUME 1000
6140 IF ERR=57 THEN RESUME 1000
6160 IF CNCT=0 AND LCL=0 THEN RESUME 2420 ELSE RESUME 1000
6180 DATA "MESSAGES","OUTMSG","QWERTY"
6200 IF CH$="ON " THEN CH$="OFF":GOTO 6240
6220 IF CH$="OFF" THEN CH$="ON "
6240 IF CNCT=0 THEN GOSUB 6660:RETURN ELSE GOSUB 6980:RETURN
6260 IF CNCT=0 THEN GOSUB 6340:RETURN ELSE GOSUB 3100:RETURN
6280 RETURN 1000
6300 IF BP$="ON " THEN BP$="OFF":GOTO 6240
6320 IF BP$="OFF" THEN BP$="ON ":GOTO 6240
6340 IF BP$="ON " THEN BEEP:RETURN ELSE RETURN
6350 NUM=0:MUN=0:GOTO 6240
6380 REM
6400 REM ----------- SUPPORT ROUTINE FOR COMMUNICATIONS TIMING -----------
6420 REM
6440 DE!=FNTI!+1:GOTO 6480
6460 DE!=FNTI!+3
6480 IF FNTI!<DE! AND DE!< 86400! THEN 6480 ELSE RETURN
6500 WHILE (INP(MSR)AND &H40):WEND
6520 GOSUB 6440
6530 IF LCL=0 THEN PRINT #3,A$+M$;
6540 IF PR=0 THEN RETURN ELSE PRINT A$
6580 RETURN
6600 REM
6620 REM ------- DISPLAY CHANGE IN STATUS FOR F1 & F2 / WRITE TO DISK -------
6640 REM
6660 LOCATE 5,24
6680 PRINT "<F1> to toggle CHAT... chat is ";CH$
6700 LOCATE 6,24
6720 PRINT "<F2> to toggle BEEP... beep is ";BP$
6740 LOCATE 7,24
6760 PRINT "<F3> at any time to BREAK into CHAT"
6780 LOCATE 8,24
6800 PRINT "<F4> at any time to disconnect user"
6820 LOCATE 9,24
6840 PRINT "<X> to end program"
6860 LOCATE 10,24
6880 PRINT "<L> to enter LOCAL mode processing"
6890 LOCATE 11,24
6892 PRINT "<R> to RESET number of msgs/callers"
6900 LOCATE 13,24
6920 PRINT "Number of Messages.... ";NUM
6940 LOCATE 14,24
6960 PRINT "Number of Calls....... ";MUN
6970 IF UPD=0 THEN RETURN
6980 OPEN "O",2,"ANSWER.DEF"
6990 WRITE #2,BP$,CH$,NUM,MUN:CLOSE #2
7000 RETURN
8000 REM
8001 REM ---------- CHANGE MSR & LCR TO ADAPT TO CALLERS COMM SETTINGS --------
8002 REM
11654 R1=INP(LCR):DF=INP(MSB):OUT MSB,0:OUT LCR,R1 OR 128:IF Q=384 THEN OUT LSB,&H80:OUT MSB,&H1:GOTO 11684
11662 IF Q=256 THEN OUT LSB,&H0:OUT MSB,&H1:GOTO 11684
11664 IF Q=96 THEN OUT LSB,&H60:OUT MSB,&H0:GOTO 11684
11666 IF Q=48 THEN OUT LSB,&H30:OUT MSB,&H0
11684 OUT LCR,R1:OUT MSB,DF:RETURN
21280 WHILE NOT EOF(3):DF$=INPUT$(LOC(3),3):WEND:RETURN